package org.mybatis.service;

import java.util.List;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.dao.IUser;
import org.mybatis.dao.impl.UserDaoImpl;
import org.mybatis.model.User;
import org.mybatis.service.impl.UserServiceApi;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

public class UserService implements UserServiceApi {
    private static UserService instance = new UserService();
    
    public static UserService getInstance() {
        return instance;
    }
    
    private IUser iUser;
    
    public void initSession(SqlSessionFactory sqlSessionFactory) {
        iUser = new UserDaoImpl(sqlSessionFactory);
    }
    
    @Override
    public List<User> searchUser() {
        return iUser.searchUser();
    }
    
    @Override
    public int insertUser(User user) {
        return iUser.insertUser(user);
    }
    
    @Override
    public PageInfo<User> searchUser(Integer pageNo, Integer pageNum) {
        pageNo = pageNo == null ? 1 : pageNo;
        pageNum = pageNum == null ? 10 : pageNum;
        PageHelper.startPage(pageNo, pageNum);
        
        List<User> ulList = iUser.searchUser();
        PageInfo<User> pageInfo = new PageInfo<>(ulList);
        return pageInfo;
    }
    
    /**
     * @deception TODO
     * @author 米mi
     * @date 2017年11月27日下午4:07:09
     */
    public int updateUser(User user) {
        return iUser.updateUser(user);
    }
    
    /**
     * @deception TODO
     * @author 米mi
     * @date 2017年11月27日下午4:16:26
     */
    public User searchUserById(String id) {
        return iUser.searchUserById(id);
    }
    
    /**
     * @deception TODO
     * @author 米mi
     * @date 2017年11月28日上午11:06:40
     */
    public int insertByList(List<User> userList) {
        return iUser.insertByList(userList);
    }
    
    /**
     * @deception TODO
     * @author 米mi
     * @date 2017年11月29日上午2:10:21
     */
    public int deleteByList(List<String> uList) {
        return iUser.deleteByList(uList);
    }
    
}
